
function getById(id){
    return document.getElementById(id);
}

/**
 *
 */
getById('sjklx').addEventListener('change',function(){
    var sjylx = getById('sjklx').value;
    if('ORACLE' == sjylx){
        getById('sjkport').value = '1521';
    }else{
        getById('sjkport').value = '1433';
    }
},false);


/**
 * 获取到表单参数
 * @param formid 表单id
 */
function getparams(formid) {
    var paramsArr = $('#'+formid).serializeArray();
    var params = {};//分配内存空间
    for (var i = 0; i < paramsArr.length; i++) {//数据类型为"自定义类的字段名=数据"后台会自动对数据进行匹配
        params[paramsArr[i].name] = paramsArr[i].value;
    }
    return params;
}


/**
 * 测试数据库连接
 */
function testCon(formid) {
    getById('alertRep').innerHTML ='';
    var params = getparams(formid);
    $.ajax({
        type:"POST",
        contentType:'application/json',
        dataType:"json",
        url:'/sjzc/sjypz/testDbConnection',
        data:JSON.stringify(params),
        success:function(jsonData){
            getById('alertRep').innerHTML = jsonData.repMsg;
            $('#static').modal('toggle');
        }
    });
}

/**
 * 同步数据库详情
 */
function synchronizationDbInfo(sjkdm) {
    App.blockUI({
        // target: '#bolckUi',
        message:'执行中...',
        animate: true
    });
    window.setTimeout(function() {
        App.unblockUI();
    }, 2000);

    // App.startPageLoading({message: '执行中...'});
    //
    // window.setTimeout(function() {
    //     App.stopPageLoading();
    // }, 2000);
    // App.blockUI();
    // window.setTimeout(function() {
    //     App.unblockUI();
    // }, 2000);
    $.ajax({
        type:"GET",
        url:'/sjzc/sjypz/synchronizationDbInfo?sjkdm='+ sjkdm,
        success:function(jsonData){
            if(jsonData.statusCode == 200) {
                confirmAlert('success',jsonData.repMsg);
            }else{
                confirmAlert('error',jsonData.repMsg);
            }
        }
    });
}
/**
 * 后台post请求
 * @param url
 * @param formid
 */
function ajaxSjzc(url,formid) {
    var params = getparams(formid);
    $.ajax({
        type:"POST",
        contentType:'application/json',
        dataType:"json",
        url:url,
        data:JSON.stringify(params),
        success:function(jsonData){
            if(jsonData.statusCode == 200){
                $('#editSjypz').modal('toggle');
                confirmAlert('success',jsonData.repMsg);
            }else{
                getById('alertRep').innerHTML = jsonData.repMsg;
                $('#static').modal('toggle');
            }

        }
    });
}

/**
 * 新增清空表单中的值
 */
function add() {
    $(':input','#editSjypz').val('');
}

/**
 * 保存
 */
function save(formid) {
    getById('alertRep').innerHTML ='';
    ajaxSjzc('/sjzc/sjypz/save',formid);
}

/**
 * 查看编辑
 * @param sjkdm
 */
function edit(sjkdm){
    $.ajax({
        type:"GET",
        url:'/sjzc/sjypz/detail?sjkdm='+ sjkdm,
        success:function(jsonData){
            if(jsonData.statusCode == 200){
                console.log(jsonData);
                getById('sjkmc').value = jsonData.repData.sjkmc;
                getById('sjklx').value = jsonData.repData.sjklx;
                setPort(getById('sjklx').value);
                getById('sjkdz').value = jsonData.repData.sjkdz;
                getById('yhm').value = jsonData.repData.yhm;
                getById('mm').value = jsonData.repData.mm;
                getById('sjkdm').value = jsonData.repData.sjkdm;
                getById('ms').value = jsonData.repData.ms;
            }else {
            }
        }
    });
}

/**
 * 根据数据库类型设置数据库端口号
 * @param sjklx
 */
function setPort(sjklx) {
    if('ORACLE' == sjklx){
        getById('sjkport').value = '1521';
    }else{
        getById('sjkport').value = '1433';
    }
}


/**
 * 删除
 * @param sjkdm
 */
function del(sjkdm) {
    getById('alertRep').innerHTML ='';
    $.ajax({
        type:"GET",
        url:'/sjzc/sjypz/del?sjkdm='+ sjkdm,
        success:function(jsonData){
            if(jsonData.statusCode == 200) {
                confirmAlert('success',jsonData.repMsg);
            }else{
                confirmAlert('error',jsonData.repMsg);
            }

        }
    });
}


/*
 * 初始化表格，可多选
 * tableName：表的id，不用#，默认为sample_1
 * url：数据源地址
 */
function initTable() {
    url = "/sjzc/sjypz/getList";
    var oTable = $('#sjypz_table').DataTable({
        "language": {
            "processing": "加载中...",
            "lengthMenu": "每页显示 _MENU_ 条数据",
            "zeroRecords": "没有匹配结果",
            "info": "显示第 _START_ 至 _END_ 项结果，共 _TOTAL_ 项",
            "infoEmpty": "显示第 0 至 0 项结果，共 0 项",
            "infoFiltered": "(由 _MAX_ 项结果过滤)",
            "infoPostFix": "",
            "search": "搜索:",
            "url": "",
            "emptyTable": "没有匹配结果",
            "loadingRecords": "数据载入中...",
            "thousands": ",",
            "paginate": {
                "first": "首页",
                "previous": "上一页",
                "next": "下一页",
                "last": "末页"
            },
            "aria": {
                "sortAscending": ": 以升序排列此列",
                "sortDescending": ": 以降序排列此列"
            }
        },
        "lengthMenu": [
            [20, 25, 30, 40, 50, 100, -1],
            [20, 25, 30, 40, 50, 100, "全部"] // change per page values here
        ],
        "pageLength": 10,
        "bPaginate": true, //翻页功能
        "bLengthChange": true, //改变每页显示数据数量
        "bAutoWidth": false,//自动宽度
        "ajax": {
            type: 'POST',
            url: url,
            data: function (d) {  //这个d是插件默认会传给服务端的参数，建议打印d看看有啥数据
                var params = {};
                params.start = d.start;
                params.length = d.length;
                params.draw = 1;
                return params;
            },
            dataType: 'json',
            dataSrc: function (res) {
                var data = {};
                console.log(res);
                return data;
            }
        },
        rowId: "id",
        "destroy": true,
        "bProcessing": true,
        "bServerSide": true,
        "bSort": false// 排序
    });
    /*//选择第一行（表头行）最上面checkbox，所以行都选中
    table.on('change', '.group-checkable', function () {
        var set = jQuery(this).attr("data-set");
        var checked = jQuery(this).is(":checked");
        jQuery(set).each(function () {
            if (checked) {
                $(this).prop("checked", true);
                $(this).parents('tr').addClass("active");
            } else {
                $(this).prop("checked", false);
                $(this).parents('tr').removeClass("active");
            }
        });

    });*/

    /*//选择每行的开始checkbox，则选中此行，颜色变化
    //此事件会先调用tr的click时间，这样会再次改变checkbox的状态，进而调用其chang事件
    table.on('change', 'tbody tr .checkboxes', function () {   //tbody tr
        $(this).parents('tr').toggleClass("active");
    });

    //选中每行任意位置，改变行颜色，checkbox状态
    table.on('click', 'tbody tr', function () {
        $(this).toggleClass("active");
        if ($(this).is(".active")) {
            $(this).find(".checkboxes").prop("checked", true);  //.attr("checked", true);
        } else {
            $(this).find(".checkboxes").removeAttr("checked");  //.attr("checked", false);
        }
        //当所有的行都被选中，则最上面的checkbox也勾选，否则不勾选
        var showCount = table.find("tbody tr").length;
        var selectedCount = $("input[class='checkboxes']:checked").length;
        if (showCount == selectedCount) {
            $('.group-checkable').prop("checked", true);  //.attr("checked", true);比用attr好
        } else {
            $('.group-checkable').removeAttr("checked");  //.attr("checked", false);
        }
    });

    //修改数据显示条数下拉控件样式处理
    // var tableWrapper = jQuery('#sjypz_table_wrapper');
    // tableWrapper.find('.dataTables_length select').addClass("form-control input-xsmall input-inline"); // modify table per page dropdown
*/
}

function initDataTable() {
    $('#sjypz_table').DataTable( {
        "ajax": {
            type: 'POST',
            url: "/sjzc/sjypz/getList",
            data: function (d) {  //这个d是插件默认会传给服务端的参数，建议打印d看看有啥数据
                var params = {};
                params.start = d.start;
                params.length = d.length;
                params.draw = 1;
                return params;
            },
            dataType: 'json',
            dataSrc: function (res) {
                var data = {};
                console.log(res);
                return data;
            }
        },

        "columns": [
            { "data": "name" },
            { "data": "position" },
            { "data": "office" },
            { "data": "extn" },
            { "data": "start_date" },
            { "data": "salary" }
        ],
        "language": {
            "processing": "加载中...",
            "lengthMenu": "每页显示 _MENU_ 条数据",
            "zeroRecords": "没有匹配结果",
            "info": "显示第 _START_ 至 _END_ 项结果，共 _TOTAL_ 项",
            "infoEmpty": "显示第 0 至 0 项结果，共 0 项",
            "infoFiltered": "(由 _MAX_ 项结果过滤)",
            "infoPostFix": "",
            "search": "搜索:",
            "url": "",
            "emptyTable": "没有匹配结果",
            "loadingRecords": "数据载入中...",
            "thousands": ",",
            "paginate": {
                "first": "首页",
                "previous": "上一页",
                "next": "下一页",
                "last": "末页"
            },
            "aria": {
                "sortAscending": ": 以升序排列此列",
                "sortDescending": ": 以降序排列此列"
            }
        }
    } );
}


//初始化bootstrap-table的内容
function InitMainTable () {
    //记录页面bootstrap-table全局变量$table，方便应用
    $("#sjypz_table").bootstrapTable({
        url: '/sjypz/getList',                      //请求后台的URL（*）
        method: 'GET',                      //请求方式（*）
        //toolbar: '#toolbar',              //工具按钮用哪个容器
        striped: true,                      //是否显示行间隔色
        cache: false,                       //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
        pagination: true,                   //是否显示分页（*）
        sortable: true,                     //是否启用排序
        sortOrder: "asc",                   //排序方式
        sidePagination: "server",           //分页方式：client客户端分页，server服务端分页（*）
        pageNumber: 1,                      //初始化加载第一页，默认第一页,并记录
        pageSize: 10,                       //每页的记录行数（*）
        pageList: [10, 25, 50, 100],        //可供选择的每页的行数（*）
        search: false,                      //是否显示表格搜索
        strictSearch: true,
        showColumns: true,                  //是否显示所有的列（选择显示的列）
        showRefresh: true,                  //是否显示刷新按钮
        minimumCountColumns: 2,             //最少允许的列数
        clickToSelect: true,                //是否启用点击选中行
        //height: 500,                      //行高，如果没有设置height属性，表格自动根据记录条数觉得表格高度
        uniqueId: "ID",                     //每一行的唯一标识，一般为主键列
        showToggle: true,                   //是否显示详细视图和列表视图的切换按钮
        cardView: false,                    //是否显示详细视图
        detailView: false,                  //是否显示父子表
        //得到查询的参数
        queryParams : function (params) {
            //这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的
            var temp = {
                rows: params.limit,                         //页面大小
                page: (params.offset / params.limit) + 1,   //页码
                sort: params.sort,      //排序列名
                sortOrder: params.order //排位命令（desc，asc）
            };
            return temp;
        },
        columns: [{
            checkbox: true,
            visible: true                  //是否显示复选框
        }, {
            field: 'Name',
            title: '姓名',
            sortable: true
        }, {
            field: 'Mobile',
            title: '手机',
            sortable: true
        }, {
            field: 'Email',
            title: '邮箱',
            sortable: true
            // formatter: emailFormatter
        }, {
            field: 'Homepage',
            title: '主页'
            // formatter: linkFormatter
        }, {
            field: 'Hobby',
            title: '兴趣爱好'
        }, {
            field: 'Gender',
            title: '性别',
            sortable: true
        }, {
            field: 'Age',
            title: '年龄'
        }, {
            field: 'BirthDate',
            title: '出生日期'
            // formatter: dateFormatter
        }, {
            field: 'Height',
            title: '身高'
        }, {
            field: 'Note',
            title: '备注'
        }, {
            field:'ID',
            title: '操作',
            width: 120,
            align: 'center',
            valign: 'middle'
            // formatter: actionFormatter
        }, ],
        onLoadSuccess: function () {
        },
        onLoadError: function () {
            showTips("数据加载失败！");
        }
        // onDblClickRow: function (row, $element) {
        //     var id = row.ID;
        //     EditViewById(id, 'view');
        // }
    });
}

